# -*- coding: utf-8 -*-
# @Time : 2024/7/3 0:15
# @Author : TH
# Description:测试用例数据封装

from testCase.Read_TestCase import ReadTestCase
from common.OperationExcelSheet import OperationExcel


class TestCase:
    def __init__(self):
        self.read = ReadTestCase()
        self.excel = OperationExcel()

    def case_data(self):
        # 循环excel所有sheet
        case_list = []  # 创建空列表,存放测试用例
        for sheet_name in self.excel.get_sheet_names():
            # 获取当前sheet最大行
            get_max_row = self.read.get_max_row(sheet_name)
            for row in range(2, get_max_row + 1):
                testcase_dict = dict(
                    # 获取sheet名称
                    get_sheet_name=sheet_name,
                    # 获取当前行
                    get_row = row,
                    # 获取测试用例id
                    get_id=self.read.get_caseId(sheet_name, row),
                    # 获取接口请求地址
                    get_url=self.read.get_caseUrl(sheet_name, row),
                    # 获取接口请求方法
                    get_method=self.read.get_caseMethod(sheet_name, row),
                    # 获取接口请求参数
                    get_params=self.read.get_caseParams(sheet_name, row),
                    # 获取测试用例是否执行
                    get_isexecute=self.read.get_caseExecute(sheet_name, row),
                    # 获取预期结果
                    get_caseExpect = self.read.get_caseExpect(sheet_name, row),
                )
                case_list.append(testcase_dict)  # 每循环一次就将一行数据加入列表
        return case_list

if __name__ == '__main__':
    testcase = TestCase()
    print(testcase.case_data())